View Javadoc

1   /*
2    * Copyright ou © ou Copr. Arnaud Prost, 26 févr. 2005
3    *
4    * arnaud.prost@gmail.com
5    *
6    * Ce logiciel est un programme informatique servant à faciliter le travail
7    * collaboratif.
8    *
9    * Ce logiciel est régi par la licence CeCILL soumise au droit français et
10   * respectant les principes de diffusion des logiciels libres. Vous pouvez
11   * utiliser, modifier et/ou redistribuer ce programme sous les conditions
12   * de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
13   * sur le site "http://www.cecill.info".
14   *
15   * En contrepartie de l'accessibilité au code source et des droits de copie,
16   * de modification et de redistribution accordés par cette licence, il n'est
17   * offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
18   * seule une responsabilité restreinte pèse sur l'auteur du programme,  le
19   * titulaire des droits patrimoniaux et les concédants successifs.
20   *
21   * A cet égard  l'attention de l'utilisateur est attirée sur les risques
22   * associés au chargement,  à l'utilisation,  à la modification et/ou au
23   * développement et à la reproduction du logiciel par l'utilisateur étant
24   * donné sa spécificité de logiciel libre, qui peut le rendre complexe à
25   * manipuler et qui le réserve donc à des développeurs et des professionnels
26   * avertis possédant  des  connaissances  informatiques approfondies.  Les
27   * utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
28   * logiciel à leurs besoins dans des conditions permettant d'assurer la
29   * sécurité de leurs systèmes et ou de leurs données et, plus généralement,
30   * à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
31  
32   * Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
33   * pris connaissance de la licence CeCILL, et que vous en avez accepté les
34   * termes.
35   */
36  
37  package net.sf.pmr.keopsframework.domain.validation;
38  
39  import java.util.List;
40  import java.util.Locale;
41  
42  /***
43   * @author Arnaud Prost (arnaud.prost@gmail.com)
44   *
45   * Interface de la structure d'erreur
46   * Elle est largement inspirée de celle du framework Spring à différence:
47   * - elle a été simplifiée en supprimant certaines méthodes
48   *
49   */
50  public interface Errors {
51  
52  
53      /***
54       * Reject the current object, using the given error description.
55       * @param errorCode
56       */
57      void reject(final String errorCode);
58  
59      /***
60       * Reject the current object, using the given error description.
61       * @param errorCode
62       * @param errorArguments
63       */
64      void reject(final String errorCode, final Object[] errorArguments);
65  
66      /***
67      * Reject the given field of the current object, using the given error description.
68       * @param field
69       * @param errorCode
70      */
71      void rejectValue(final String field, final String errorCode);
72  
73      /***
74       * Reject the given field of the current object, using the given error description.
75       * @param field
76       * @param errorCode
77       * @param errorArguments
78       */
79       void rejectValue(final String field, final String errorCode, final Object[] errorArguments);
80  
81  
82      /***
83       * public boolean hasErrors()
84       * @return boolean
85       */
86        boolean hasErrors();
87  
88        /***
89         * Return the total number of errors.
90         * @return int
91         */
92        int getErrorCount();
93  
94       
95       /***
96        * Get all errors, both global and field ones.
97        * @param locale locale
98        * @return List of errors
99        */
100       List getAllErrors(Locale locale);
101       
102       /***
103        * Get all the message parameters for all errors, both global and field ones.
104        * @param locale locale
105        * @return List of errors
106        */
107        List getAllErrorsMessageParameters();
108 
109 
110     /***
111      * Return if there were any global (i.e. not field-specific) errors.
112      * @return boolean
113      */
114      boolean hasGlobalErrors();
115 
116      /***
117       * Return if there are any errors associated with the given field.
118       * @param field
119       * @return boolean
120       */
121       boolean hasFieldErrors(final String field);
122 
123     /***
124      * Return the number of global (i.e. not field-specific) errors.
125      * @return number of errors
126      */
127      int getGlobalErrorCount();
128     
129     /***
130      * Get the first global error, if any.
131      * @param locale locale
132      * @return number of errors 
133      */
134      String getGlobalError(Locale locale);
135 
136     
137     /***
138      *  Get all global errors.
139      * @param locale locale
140      * @return list list
141      */
142     List getGlobalErrors(Locale locale);
143 
144 
145     /***
146      * Return the number of errors associated with the given field.
147      * @param field name of the field
148      * @return int number or errors for the field
149      */
150      int getFieldErrorCount(final String field);
151 
152     
153     /***
154      * Get the first error associated with the given field, if any.
155      * @param field field
156      * @param locale locale
157      * @return String
158      */
159      String getFieldError(final String field, final Locale locale);
160 
161      
162     /***
163      * Get all errors associated with the given field.
164      * @param field field
165      * @param locale locale
166      * @return List list 
167      */
168     List getFieldErrors(final String field, final Locale locale);
169 
170 }